package com.imooc.distributedemo.resume.leetcode;

/**
 * leetcode09  回文数
 */
public class Solution09 {
    public static void main(String[] args) {
        int a = 1221;
//        a = 12321;
        boolean b1 = isPalindrome1(a);
        System.out.println(b1);

        boolean b2 = isPalindrome2(a);
        System.out.println(b2);
    }

    private static boolean isPalindrome2(int x) {
//        if(x<0){
//            return Boolean.FALSE;
//        }
//        String str = String.valueOf(x);
//        if(str.length()==1){
//            return Boolean.TRUE;
//        }
//        String reverseStr = new StringBuilder(str).reverse().toString();
//        return str.equals(reverseStr);
        // 负数和以0开头的正数不是回文数
        if (x < 0 || (x % 10 == 0 && x != 0)) {
            return false;
        }

        int reversedNumber = 0;
        while (x > reversedNumber) {
            reversedNumber = reversedNumber * 10 + x % 10;
            x /= 10;
        }

        // 当数字长度为奇数时，可以通过 reversedNumber/10 去除中间的数字
        return x == reversedNumber || x == reversedNumber / 10;
    }

    public static boolean isPalindrome1(int x) {
        if(x<0){
            return Boolean.FALSE;
        }
        String str = String.valueOf(x);
        if(str.length()==1){
            return Boolean.TRUE;
        }
        boolean b;
        if(str.length()%2==0){
            String str1 = str.substring(0,str.length()/2);
        }else{

        }
        return Boolean.TRUE;
    }
}
